Given a string containing just the characters ‘(‘, ‘)’, ‘{‘, ‘}’, ‘[‘ and ‘]’, determine if the input string is valid.

An input string is valid if:

Open brackets must be closed by the same type of brackets.
Open brackets must be closed in the correct order.
Note that an empty string is also considered valid.

Example 1:

1
2
Input: "()"
Output: true

Example 2:

1
2
Input: "()[]{}"
Output: true

Example 3:

1
2
Input: "(]"
Output: false

Example 4:

1
2
Input: "([)]"
Output: false

Example 5:

1
2
Input: "{[]}"
Output: true

方法1:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Solution {
public boolean isValid(String s) {
Map<Character,Character> m = new HashMap<Character,Character>();
m.put(')', '(');
m.put('}', '{');
m.put(']', '[');

Stack<Character> stack = new Stack<Character>();
for (char key : s.toCharArray()) {
if (!m.containsKey(key)) {
stack.push(key);
} else if (stack.empty() || !m.get(key).equals(stack.pop())) {
return false;
}
}
return stack.empty();

}
}

 

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×